Asynchronous Transfer Mode (ATM) networks provide integrated services having a wide range of bandwidths and holding times. ATM traffic can be subdivided into Constant Bit Rate (CBR) and Variable Bit Rate (VBR) traffic types. Each traffic type is supported by one or more ATM Adaptation Layers (AAL). AAL type 3, 4 or 5 protocols are employed for data packets or VBR traffic while AAL type 1 is used for CBR traffic.
The transport of packets across the network is accomplished by segmenting the data unit into cells, which are then transmitted to a destination. At the destination, reassembly of the packet is required before passing it to a receiving application. To accomplish the reassembly procedure, a memory addressing and management scheme is needed. For example, in a point-to-point transmission scenario, if consecutive cells belong to the same packet, reassembly can be achieved by storing cell payloads belonging to a packet in a memory space in a First In First Out (FIFO) manner. However, if packets are received from different virtual channels, having been multiplexed and switched through the network, cell interleaving occurs, and each virtual channel will require its own FIFO.
FIG. 1 illustrates cell interleaving in an ATM network. Stations A and B transmit information packets, which are carried in the network in the form of ATM cells marked A1, A2, A3 and B1, B2, B3, respectively. When these cells are transmitted through the network, they may be interleaved as shown. At the receive end, the packets must be reconstructed before being passed to applications running on Station C. As a result, reassembly typically requires two FIFOs (FIFO1 and FIFO2) each dedicated to a given virtual channel.
Different approaches have been attempted to solve the reassembly problem of interleaved cells. One solution is to realize that packets are generated and received by host computers, and therefore it is possible to share the host's physical memory space. Thus, one can use the host's operating system to manage the incoming packet information. This solution requires that the applications running on a given platform share the host's physical memory space with the network. As a result, depending on the network load, applications running on a given platform may experience performance degradation or if applications have priority over the network interface, the incoming data packets could be lost.
Another solution is to implement the reassembly function with dedicated hardware. This means reassembling packets in an external memory unit, which transfers packets to a host computer whenever a packet is successfully reconstructed. In the application noted above entitled "Method and Adaptor for Converting Data Packets Between First And Second Formats In A Data Transmission System", a hardware architecture uses linked lists to reconstruct incoming packets. A virtual channel queue holds partial data packets in a shared memory device. In one embodiment, the partial data packets destined for a common virtual channel are associated with a linked list data structure. In an alternate embodiment, a plurality of FIFO devices are used to store the addresses of successive partial packets.
Others have presented another technique by using the host's CPU cycles to control the linked list.
The above solutions are based on the assumption that best effort traffic transmission is required. This is an acceptable assumption since most of today's computer networks work under this constraint. In other words, these techniques might cause cell loss at the reassembly unit due to the nonavailability of memory space at high network throughputs. However, as new applications emerge with strict performance requirements (such as, for example, applications requiring distributed software processing, where the network transmission delay must be kept to a minimum for best performance results), a reliable transport mode must be supported. Furthermore, if multimedia stations are connected to the network, a need to handle AAL type 1 could arise, and a memory management architecture should be able to accommodate this traffic class.